package com.myblog.demo.config;

import com.myblog.demo.common.ApplicationVariable;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Spring MVC拦截器（LoginInterceptor），用于检查用户是否已登录。
 * 如果用户未登录，则重定向到登录页面。
 */
@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 判断用户登录
        HttpSession session = request.getSession(false); // 默认值是true
        if (session != null && session.getAttribute(ApplicationVariable.SESSION_KEY_USERINFO) != null) {
            // 用户已经登录了
            return true;
        }

        // 当代码执行到此次，表示用户未登录
        response.sendRedirect("/login.html");
        return false;
    }
}
